home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1997 December / macformat-057.iso / mac / Demos / Lineker's Real Football Demo / DATA / ScrollV / 00001_Script_Scrolling Text next >
Encoding:
Text File  |  1997-08-03  |  4.2 KB  |  132 lines

  1. global spritetot ,spritestart, hloc, vloc, vspace
  2. global textmember, textbase, tscrollpos, tscrollmax
  3. global spriteorder, rate, fsize
  4.  
  5. on setuptscroll targettext
  6.   
  7.   set spriteorder =[]
  8.   set textbase =  ""
  9.   set textmember = the number of member "textmember1"
  10.   set fsize = the fontsize of member textmember
  11.   set rate = 20.0 -- ï Number of steps ï
  12.   set spritetot = 5 -- ï Number of on-screen sprites ï
  13.   set spritestart = 40 -- ï First sprite channel ï
  14.   set hloc = 368 -- ï Horizontal position ï
  15.   set vloc = 303 -- ï Vertical position of first sprite ï
  16.   set vspace = 27 -- ï Vertical spacing between sprites ï
  17.   repeat with j = 1 to spritetot
  18.     puppetsprite (spritestart+(j-1)),1
  19.     setat spriteorder,j,j-1
  20.   end repeat
  21.   set textbase = the text of member targettext
  22.   set tscrollpos = 1
  23.   set tscrollmax = the number of lines in textbase+1-spritetot
  24.   displaytext
  25. end setuptscroll
  26.  
  27. on displaytext
  28.   repeat with j = 1 to spritetot
  29.     set the loch of sprite (spritestart+(getat(spriteorder,j))) = hloc
  30.     set the locv of sprite (spritestart+getat(spriteorder,j)) = vloc+((j-1)*vspace)
  31.     set the text of member (textmember+(getat(spriteorder,j))) = line ((j-1)+tscrollpos) of textbase
  32.   end repeat
  33.   updatestage
  34. end displaytext
  35.  
  36. on scrollup
  37.   repeat while the stilldown
  38.     if tscrollpos>1 then
  39.       autoup
  40.       set tscrollpos = tscrollpos -1
  41.       shiftorder 1
  42.     end if
  43.   end repeat
  44. end scrollup
  45.  
  46. on scrolldown
  47.   repeat while the stilldown
  48.     if tscrollpos+1<=tscrollmax then
  49.       autodown
  50.       set tscrollpos = tscrollpos+1
  51.       shiftorder 0
  52.     end if
  53.   end repeat
  54. end scrolldown
  55.  
  56. on shiftorder up
  57.   if up then
  58.     set tmp = getat(spriteorder,spritetot)
  59.     repeat with j = spritetot down to 2
  60.       setat spriteorder,j,getat(spriteorder,j-1)
  61.     end repeat
  62.     setat spriteorder,1,tmp
  63.   else
  64.     set tmp = getat(spriteorder,1)
  65.     repeat with j = 1 to spritetot-1
  66.       setat spriteorder,j,getat(spriteorder,j+1)
  67.     end repeat
  68.     setat spriteorder,spritetot,tmp
  69.   end if
  70. end shiftorder
  71.  
  72.  
  73. on autodown
  74.   set vstep = float(vspace/rate)
  75.   set topdist = the locv of sprite (spritestart+getat(spriteorder,1))
  76.   set botdist = 640 - the locv of sprite (spritestart+getat(spriteorder,spritetot))
  77.   set totdist = topdist+botdist--+vspace
  78.   set topstep = float(totdist/rate)
  79.   set posv = []
  80.   repeat with j = 1 to spritetot
  81.     setat posv,j,the locv of sprite (spritestart+getat(spriteorder,j))
  82.   end repeat
  83.   repeat with j = 1 to rate
  84.     set thelocv2 = getat(posv,1)
  85.     if thelocv2-(topstep*j)<=0 then
  86.       setat posv,1,getat(posv,1)+640
  87.       set the text of member (textmember+getat(spriteorder,1)) = line (spritetot+tscrollpos) of textbase
  88.     end if
  89.     set the locv of sprite (spritestart+getat(spriteorder,1)) = thelocv2 - (topstep*j)
  90.     repeat with k = 2 to spritetot
  91.       set thelocv = getat(posv,k)
  92.       set the locv of sprite (spritestart+getat(spriteorder,k)) = thelocv - (vstep*j)
  93.     end repeat
  94.     updatestage
  95.   end repeat
  96.     set the locv of sprite (spritestart+getat(spriteorder,1)) = getat(posv,spritetot)
  97.     updatestage
  98.  
  99. end autodown
  100.  
  101. on autoup
  102.   set vstep = float(vspace/rate)
  103.   set topdist = the locv of sprite (spritestart+getat(spriteorder,1))
  104.   set botdist = 640 - the locv of sprite (spritestart+getat(spriteorder,spritetot))
  105.   set totdist = topdist+botdist+vspace
  106.   set topstep = float(totdist/rate)
  107.   set posv = []
  108.   repeat with j = 1 to spritetot
  109.     setat posv,j,the locv of sprite (spritestart+getat(spriteorder,j))
  110.   end repeat
  111.   repeat with j = 1 to rate
  112.     set thelocv2 = getat(posv,spritetot)
  113.     if thelocv2+(topstep*j)>640 then
  114.       setat posv,spritetot,getat(posv,spritetot)-640-topdist+fsize+(vstep*2)
  115.       set the text of member (textmember+getat(spriteorder,spritetot)) = line (tscrollpos-1) of textbase
  116.     end if
  117.     set the locv of sprite (spritestart+getat(spriteorder,spritetot)) = thelocv2 + (topstep*j)
  118.     repeat with k = 1 to spritetot-1
  119.       set thelocv = getat(posv,k)
  120.       set the locv of sprite (spritestart+getat(spriteorder,k)) = thelocv + (vstep*j)
  121.     end repeat
  122.     updatestage
  123.   end repeat
  124.   set the locv of sprite (spritestart+getat(spriteorder,spritetot)) = getat(posv,1)
  125.     updatestage
  126. end autoup
  127.  
  128.  
  129.  
  130.  
  131.  
  132.